package rejahealth.ui;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.InputStream;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.Timer;
import rejahealth.model.Person;
import rejahealth.util.Recommendations;


public class RecommendationFrameIESB extends JFrame implements ActionListener {
    
    protected Person person;
    public int fitness, level, climate;
    
    public void setframeicon(JFrame window, String icon){ //mudar ícone da janela
        try{ 
            InputStream imgStream = this.getClass().getResourceAsStream(icon); 
            BufferedImage bi = ImageIO.read(imgStream); 
            ImageIcon myImg = new ImageIcon(bi); 
            this.setIconImage(myImg.getImage()); 
        } catch(Exception e){ 
            System.out.println(e); 
        }    
    } 
    
    public RecommendationFrameIESB(Person person, int _climate) {
       initComponents();
       //centerWindow(this);
       setSize(800,600);//padrão IESB
       setframeicon(this, "../assets/title-icon.png");
       Timer t = new Timer(20000, this);
       t.start();
       climate = _climate;
       
       //person = new RandomPersonTemp().getTempPerson();
       //person = new EnergySensor().getInforPerson() //Person criado através dos sensores;
       
       txTemperatura.setText(person.getTemperature() + "ºC"); 
       txUmidade.setText(person.getHumidity() + "%");
       
       txGordura.setText(String.format("%1$,.2f", person.getFat()).replaceAll(",", ".") + "%");
       txIMC.setText(String.format("%1$,.2f", person.getImc()).replaceAll(",", ".") + "");
       txHidratacao.setText(String.format("%1$,.2f", person.getHydration()).replaceAll(",", ".") + "%");
       //txIdade.setText(person.getAge() + " Anos");
       // txSexo.setText(person.getSex());
       
       //if Men:
       if (person.getSex().equals("Masculino")) //Masculino 
       {
            if ((person.getFat() < 14) && (person.getImc() < 35))
                fitness = 0;
            else if ((person.getFat() >= 14) && (person.getFat() <20.7) && (person.getImc()<=20.7))
                fitness = 1;
            else if ((person.getFat() >= 14) && (person.getFat() <20.7) && (person.getImc() > 20.7))
                fitness = 2;
            else if ((person.getFat() > 24) && (person.getImc() < 20.7))
                fitness = 3;
            
            if (person.getHydration() < 60.5)
                level = 0;//Desidratado.
            else if (person.getHydration() >= 60.5)
                level = 1; //Hidratado.
        }
       
      //if women
      if (person.getSex().equals("Feminino")) //Feminino
      {
            if ((person.getFat() < 22) && (person.getImc() < 36)) 
                fitness = 0;
            else if ((person.getFat() >= 22) && (person.getFat() <32) && (person.getImc()<= 19.1))
               fitness = 1;
            else if ((person.getFat() >= 22) && (person.getFat() <32) && (person.getImc() > 19.1))
               fitness = 2;
            else if ((person.getFat() > 32) && (person.getImc() < 19.1))
               fitness = 3;
            
            if (person.getHydration() < 59.8)
                level = 0;//Desidratado.
            else if (person.getHydration() >= 59.8)
                level = 1; //Hidratado.
       }
      
        System.out.println("######>" + climate + " - " + level + " - " + fitness);
        txRecomendacaoIESB02.setText(Recommendations.recommendationPerson(climate, level, fitness));      
    }

    
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        txGordura = new javax.swing.JLabel();
        lblGordura = new javax.swing.JLabel();
        txHidratacao = new javax.swing.JLabel();
        lblIMC = new javax.swing.JLabel();
        lblRecomendacao = new javax.swing.JLabel();
        txIMC = new javax.swing.JLabel();
        ImgSolArvore = new javax.swing.JLabel();
        txUmidade = new javax.swing.JLabel();
        lblHidratacao = new javax.swing.JLabel();
        lblUmidade = new javax.swing.JLabel();
        txTemperatura = new javax.swing.JLabel();
        ImgCorredor = new javax.swing.JLabel();
        lblTemperatura = new javax.swing.JLabel();
        txRecomendacaoIESB02 = new javax.swing.JLabel();
        jLabel1 = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        getContentPane().setLayout(null);

        txGordura.setFont(new java.awt.Font("Tahoma", 0, 40)); // NOI18N
        txGordura.setText("txGordura");
        getContentPane().add(txGordura);
        txGordura.setBounds(100, 350, 175, 49);

        lblGordura.setFont(new java.awt.Font("Tahoma", 1, 28)); // NOI18N
        lblGordura.setText("Gordura Corporal:");
        getContentPane().add(lblGordura);
        lblGordura.setBounds(30, 310, 260, 50);

        txHidratacao.setFont(new java.awt.Font("Tahoma", 0, 40)); // NOI18N
        txHidratacao.setText("txHidratacao");
        getContentPane().add(txHidratacao);
        txHidratacao.setBounds(100, 450, 221, 49);

        lblIMC.setFont(new java.awt.Font("Tahoma", 1, 28)); // NOI18N
        lblIMC.setText("IMC:");
        getContentPane().add(lblIMC);
        lblIMC.setBounds(120, 220, 70, 34);

        lblRecomendacao.setFont(new java.awt.Font("Tahoma", 1, 24)); // NOI18N
        lblRecomendacao.setText("Recomendações:");
        getContentPane().add(lblRecomendacao);
        lblRecomendacao.setBounds(430, 140, 203, 29);

        txIMC.setFont(new java.awt.Font("Tahoma", 0, 40)); // NOI18N
        txIMC.setText("txIMC");
        getContentPane().add(txIMC);
        txIMC.setBounds(100, 250, 103, 49);

        ImgSolArvore.setIcon(new javax.swing.ImageIcon(getClass().getResource("/rejahealth/assets/sol-arvore.gif"))); // NOI18N
        getContentPane().add(ImgSolArvore);
        ImgSolArvore.setBounds(710, 10, 80, 80);

        txUmidade.setFont(new java.awt.Font("Tahoma", 0, 40)); // NOI18N
        txUmidade.setText("txUmidade");
        getContentPane().add(txUmidade);
        txUmidade.setBounds(240, 70, 188, 49);

        lblHidratacao.setFont(new java.awt.Font("Tahoma", 1, 28)); // NOI18N
        lblHidratacao.setText("Nível de Hidratação:");
        getContentPane().add(lblHidratacao);
        lblHidratacao.setBounds(20, 420, 290, 34);

        lblUmidade.setFont(new java.awt.Font("Tahoma", 1, 28)); // NOI18N
        lblUmidade.setText("Umidade:");
        getContentPane().add(lblUmidade);
        lblUmidade.setBounds(100, 80, 150, 34);

        txTemperatura.setFont(new java.awt.Font("Tahoma", 0, 40)); // NOI18N
        txTemperatura.setText("txTemperatura");
        getContentPane().add(txTemperatura);
        txTemperatura.setBounds(240, 20, 259, 49);

        ImgCorredor.setIcon(new javax.swing.ImageIcon(getClass().getResource("/rejahealth/assets/runner.gif"))); // NOI18N
        getContentPane().add(ImgCorredor);
        ImgCorredor.setBounds(700, 480, 95, 120);

        lblTemperatura.setFont(new java.awt.Font("Tahoma", 1, 28)); // NOI18N
        lblTemperatura.setText("Temperatura:");
        getContentPane().add(lblTemperatura);
        lblTemperatura.setBounds(40, 30, 210, 40);
        getContentPane().add(txRecomendacaoIESB02);
        txRecomendacaoIESB02.setBounds(350, 170, 370, 340);

        jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/rejahealth/assets/grass.jpeg"))); // NOI18N
        getContentPane().add(jLabel1);
        jLabel1.setBounds(0, 0, 800, 600);

        pack();
    }// </editor-fold>//GEN-END:initComponents
    
    @Override
    public void actionPerformed(ActionEvent ae) {
        this.dispose();
    }
    
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JLabel ImgCorredor;
    private javax.swing.JLabel ImgSolArvore;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel lblGordura;
    private javax.swing.JLabel lblHidratacao;
    private javax.swing.JLabel lblIMC;
    private javax.swing.JLabel lblRecomendacao;
    private javax.swing.JLabel lblTemperatura;
    private javax.swing.JLabel lblUmidade;
    private javax.swing.JLabel txGordura;
    private javax.swing.JLabel txHidratacao;
    private javax.swing.JLabel txIMC;
    private javax.swing.JLabel txRecomendacaoIESB02;
    private javax.swing.JLabel txTemperatura;
    private javax.swing.JLabel txUmidade;
    // End of variables declaration//GEN-END:variables
}
